// package hn.cch.filter;
//
// import org.springframework.cloud.gateway.filter.GatewayFilter;
// import org.springframework.cloud.gateway.filter.GatewayFilterChain;
// import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
// import org.springframework.stereotype.Component;
// import org.springframework.web.server.ServerWebExchange;
// import reactor.core.publisher.Mono;
//
// import java.util.Arrays;
// import java.util.List;
//
// @Component
// public class PrintGatewayFilterFactory extends AbstractGatewayFilterFactory<Print> {
//
//
//     public PrintGatewayFilterFactory() {
//         super(Print.class);
//     }
//
//     @Override
//     public List<String> shortcutFieldOrder() {
//         return Arrays.asList("console", "file"); }
//
//     @Override
//     public GatewayFilter apply(Print print) {
//         return new GatewayFilter() {
//             @Override
//             public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
//                 if (print.isConsole()){
//                     System.out.println("console on");
//                 }
//                 if (print.isFile()){
//                     System.out.println("file on");
//                 }
//                 return chain.filter(exchange);
//             }
//         };
//     }
// }
//
// class Print {
//     private boolean console;
//     private boolean file;
//
//     public boolean isConsole() {
//         return console;
//     }
//
//     public void setConsole(boolean console) {
//         this.console = console;
//     }
//
//     public boolean isFile() {
//         return file;
//     }
//
//     public void setFile(boolean file) {
//         this.file = file;
//     }
// }